<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>body {
        max-width: 980px;
        border: 1px solid #ddd;
        outline: 1300px solid #fff;
        margin: 16px auto;
    }

    body .markdown-body {
        padding: 45px;
    }

    @font-face {
        font-family: fontawesome-mini;
        src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
    }

    .markdown-body {
        font-family: sans-serif;
        -ms-text-size-adjust: 100%;
        -webkit-text-size-adjust: 100%;
        color: #333333;
        overflow: hidden;
        font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
        font-size: 16px;
        line-height: 1.6;
        word-wrap: break-word;
    }

    .markdown-body a {
        background: transparent;
    }

    .markdown-body a:active,
    .markdown-body a:hover {
        outline: 0;
    }

    .markdown-body b,
    .markdown-body strong {
        font-weight: bold;
    }

    .markdown-body mark {
        background: #ff0;
        color: #000;
        font-style: italic;
        font-weight: bold;
    }

    .markdown-body sub,
    .markdown-body sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align: baseline;
    }

    .markdown-body sup {
        top: -0.5em;
    }

    .markdown-body sub {
        bottom: -0.25em;
    }

    .markdown-body h1 {
        font-size: 2em;
        margin: 0.67em 0;
    }

    .markdown-body img {
        border: 0;
    }

    .markdown-body hr {
        -moz-box-sizing: content-box;
        box-sizing: content-box;
        height: 0;
    }

    .markdown-body pre {
        overflow: auto;
    }

    .markdown-body code,
    .markdown-body kbd,
    .markdown-body pre,
    .markdown-body samp {
        font-family: monospace, monospace;
        font-size: 1em;
    }

    .markdown-body input {
        color: inherit;
        font: inherit;
        margin: 0;
    }

    .markdown-body html input[disabled] {
        cursor: default;
    }

    .markdown-body input {
        line-height: normal;
    }

    .markdown-body input[type="checkbox"] {
        box-sizing: border-box;
        padding: 0;
    }

    .markdown-body table {
        border-collapse: collapse;
        border-spacing: 0;
    }

    .markdown-body td,
    .markdown-body th {
        padding: 0;
    }

    .markdown-body .codehilitetable {
        border: 0;
        border-spacing: 0;
    }

    .markdown-body .codehilitetable tr {
        border: 0;
    }

    .markdown-body .codehilitetable pre,
    .markdown-body .codehilitetable div.codehilite {
        margin: 0;
    }

    .markdown-body .linenos,
    .markdown-body .code,
    .markdown-body .codehilitetable td {
        border: 0;
        padding: 0;
    }

    .markdown-body td:not(.linenos) .linenodiv {
        padding: 0 !important;
    }

    .markdown-body .code {
        width: 100%;
    }

    .markdown-body .linenos div pre,
    .markdown-body .linenodiv pre,
    .markdown-body .linenodiv {
        border: 0;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        border-radius: 0;
        -webkit-border-top-left-radius: 3px;
        -webkit-border-bottom-left-radius: 3px;
        -moz-border-radius-topleft: 3px;
        -moz-border-radius-bottomleft: 3px;
        border-top-left-radius: 3px;
        border-bottom-left-radius: 3px;
    }

    .markdown-body .code div pre,
    .markdown-body .code div {
        border: 0;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        border-radius: 0;
        -webkit-border-top-right-radius: 3px;
        -webkit-border-bottom-right-radius: 3px;
        -moz-border-radius-topright: 3px;
        -moz-border-radius-bottomright: 3px;
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }

    .markdown-body * {
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    .markdown-body input {
        font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
        line-height: 1.4;
    }

    .markdown-body a {
        color: #4183c4;
        text-decoration: none;
    }

    .markdown-body a:hover,
    .markdown-body a:focus,
    .markdown-body a:active {
        text-decoration: underline;
    }

    .markdown-body hr {
        height: 0;
        margin: 15px 0;
        overflow: hidden;
        background: transparent;
        border: 0;
        border-bottom: 1px solid #ddd;
    }

    .markdown-body hr:before,
    .markdown-body hr:after {
        display: table;
        content: " ";
    }

    .markdown-body hr:after {
        clear: both;
    }

    .markdown-body h1,
    .markdown-body h2,
    .markdown-body h3,
    .markdown-body h4,
    .markdown-body h5,
    .markdown-body h6 {
        margin-top: 15px;
        margin-bottom: 15px;
        line-height: 1.1;
    }

    .markdown-body h1 {
        font-size: 30px;
    }

    .markdown-body h2 {
        font-size: 21px;
    }

    .markdown-body h3 {
        font-size: 16px;
    }

    .markdown-body h4 {
        font-size: 14px;
    }

    .markdown-body h5 {
        font-size: 12px;
    }

    .markdown-body h6 {
        font-size: 11px;
    }

    .markdown-body blockquote {
        margin: 0;
    }

    .markdown-body ul,
    .markdown-body ol {
        padding: 0;
        margin-top: 0;
        margin-bottom: 0;
    }

    .markdown-body ol ol,
    .markdown-body ul ol {
        list-style-type: lower-roman;
    }

    .markdown-body ul ul ol,
    .markdown-body ul ol ol,
    .markdown-body ol ul ol,
    .markdown-body ol ol ol {
        list-style-type: lower-alpha;
    }

    .markdown-body dd {
        margin-left: 0;
    }

    .markdown-body code,
    .markdown-body pre,
    .markdown-body samp {
        font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
        font-size: 12px;
    }

    .markdown-body pre {
        margin-top: 0;
        margin-bottom: 0;
    }

    .markdown-body kbd {
        background-color: #e7e7e7;
        background-image: -moz-linear-gradient(#fefefe, #e7e7e7);
        background-image: -webkit-linear-gradient(#fefefe, #e7e7e7);
        background-image: linear-gradient(#fefefe, #e7e7e7);
        background-repeat: repeat-x;
        border-radius: 2px;
        border: 1px solid #cfcfcf;
        color: #000;
        padding: 3px 5px;
        line-height: 10px;
        font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
        display: inline-block;
    }

    .markdown-body > *:first-child {
        margin-top: 0 !important;
    }

    .markdown-body > *:last-child {
        margin-bottom: 0 !important;
    }

    .markdown-body .headerlink {
        font: normal 400 16px fontawesome-mini;
        vertical-align: middle;
        margin-left: -16px;
        float: left;
        display: inline-block;
        text-decoration: none;
        opacity: 0;
        color: #333;
    }

    .markdown-body .headerlink:focus {
        outline: none;
    }

    .markdown-body h1 .headerlink {
        margin-top: 0.8rem;
    }

    .markdown-body h2 .headerlink,
    .markdown-body h3 .headerlink {
        margin-top: 0.6rem;
    }

    .markdown-body h4 .headerlink {
        margin-top: 0.2rem;
    }

    .markdown-body h5 .headerlink,
    .markdown-body h6 .headerlink {
        margin-top: 0;
    }

    .markdown-body .headerlink:hover,
    .markdown-body h1:hover .headerlink,
    .markdown-body h2:hover .headerlink,
    .markdown-body h3:hover .headerlink,
    .markdown-body h4:hover .headerlink,
    .markdown-body h5:hover .headerlink,
    .markdown-body h6:hover .headerlink {
        opacity: 1;
        text-decoration: none;
    }

    .markdown-body h1 {
        padding-bottom: 0.3em;
        font-size: 2.25em;
        line-height: 1.2;
        border-bottom: 1px solid #eee;
    }

    .markdown-body h2 {
        padding-bottom: 0.3em;
        font-size: 1.75em;
        line-height: 1.225;
        border-bottom: 1px solid #eee;
    }

    .markdown-body h3 {
        font-size: 1.5em;
        line-height: 1.43;
    }

    .markdown-body h4 {
        font-size: 1.25em;
    }

    .markdown-body h5 {
        font-size: 1em;
    }

    .markdown-body h6 {
        font-size: 1em;
        color: #777;
    }

    .markdown-body p,
    .markdown-body blockquote,
    .markdown-body ul,
    .markdown-body ol,
    .markdown-body dl,
    .markdown-body table,
    .markdown-body pre,
    .markdown-body .admonition {
        margin-top: 0;
        margin-bottom: 16px;
    }

    .markdown-body hr {
        height: 4px;
        padding: 0;
        margin: 16px 0;
        background-color: #e7e7e7;
        border: 0 none;
    }

    .markdown-body ul,
    .markdown-body ol {
        padding-left: 2em;
    }

    .markdown-body ul ul,
    .markdown-body ul ol,
    .markdown-body ol ol,
    .markdown-body ol ul {
        margin-top: 0;
        margin-bottom: 0;
    }

    .markdown-body li > p {
        margin-top: 16px;
    }

    .markdown-body dl {
        padding: 0;
    }

    .markdown-body dl dt {
        padding: 0;
        margin-top: 16px;
        font-size: 1em;
        font-style: italic;
        font-weight: bold;
    }

    .markdown-body dl dd {
        padding: 0 16px;
        margin-bottom: 16px;
    }

    .markdown-body blockquote {
        padding: 0 15px;
        color: #777;
        border-left: 4px solid #ddd;
    }

    .markdown-body blockquote > :first-child {
        margin-top: 0;
    }

    .markdown-body blockquote > :last-child {
        margin-bottom: 0;
    }

    .markdown-body table {
        display: block;
        width: 100%;
        overflow: auto;
        word-break: normal;
        word-break: keep-all;
    }

    .markdown-body table th {
        font-weight: bold;
    }

    .markdown-body table th,
    .markdown-body table td {
        padding: 6px 13px;
        border: 1px solid #ddd;
    }

    .markdown-body table tr {
        background-color: #fff;
        border-top: 1px solid #ccc;
    }

    .markdown-body table tr:nth-child(2n) {
        background-color: #f8f8f8;
    }

    .markdown-body img {
        max-width: 100%;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    .markdown-body code,
    .markdown-body samp {
        padding: 0;
        padding-top: 0.2em;
        padding-bottom: 0.2em;
        margin: 0;
        font-size: 85%;
        background-color: rgba(0, 0, 0, 0.04);
        border-radius: 3px;
    }

    .markdown-body code:before,
    .markdown-body code:after {
        letter-spacing: -0.2em;
        content: "\00a0";
    }

    .markdown-body pre > code {
        padding: 0;
        margin: 0;
        font-size: 100%;
        word-break: normal;
        white-space: pre;
        background: transparent;
        border: 0;
    }

    .markdown-body .codehilite {
        margin-bottom: 16px;
    }

    .markdown-body .codehilite pre,
    .markdown-body pre {
        padding: 16px;
        overflow: auto;
        font-size: 85%;
        line-height: 1.45;
        background-color: #f7f7f7;
        border-radius: 3px;
    }

    .markdown-body .codehilite pre {
        margin-bottom: 0;
        word-break: normal;
    }

    .markdown-body pre {
        word-wrap: normal;
    }

    .markdown-body pre code {
        display: inline;
        max-width: initial;
        padding: 0;
        margin: 0;
        overflow: initial;
        line-height: inherit;
        word-wrap: normal;
        background-color: transparent;
        border: 0;
    }

    .markdown-body pre code:before,
    .markdown-body pre code:after {
        content: normal;
    }

    /* Admonition */
    .markdown-body .admonition {
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        position: relative;
        border-radius: 3px;
        border: 1px solid #e0e0e0;
        border-left: 6px solid #333;
        padding: 10px 10px 10px 30px;
    }

    .markdown-body .admonition table {
        color: #333;
    }

    .markdown-body .admonition p {
        padding: 0;
    }

    .markdown-body .admonition-title {
        font-weight: bold;
        margin: 0;
    }

    .markdown-body .admonition > .admonition-title {
        color: #333;
    }

    .markdown-body .attention > .admonition-title {
        color: #a6d796;
    }

    .markdown-body .caution > .admonition-title {
        color: #d7a796;
    }

    .markdown-body .hint > .admonition-title {
        color: #96c6d7;
    }

    .markdown-body .danger > .admonition-title {
        color: #c25f77;
    }

    .markdown-body .question > .admonition-title {
        color: #96a6d7;
    }

    .markdown-body .note > .admonition-title {
        color: #d7c896;
    }

    .markdown-body .admonition:before,
    .markdown-body .attention:before,
    .markdown-body .caution:before,
    .markdown-body .hint:before,
    .markdown-body .danger:before,
    .markdown-body .question:before,
    .markdown-body .note:before {
        font: normal normal 16px fontawesome-mini;
        -moz-osx-font-smoothing: grayscale;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        line-height: 1.5;
        color: #333;
        position: absolute;
        left: 0;
        top: 0;
        padding-top: 10px;
        padding-left: 10px;
    }

    .markdown-body .admonition:before {
        content: "\f056\00a0";
        color: #333;
    }

    .markdown-body .attention:before {
        content: "\f058\00a0";
        color: #a6d796;
    }

    .markdown-body .caution:before {
        content: "\f06a\00a0";
        color: #d7a796;
    }

    .markdown-body .hint:before {
        content: "\f05a\00a0";
        color: #96c6d7;
    }

    .markdown-body .danger:before {
        content: "\f057\00a0";
        color: #c25f77;
    }

    .markdown-body .question:before {
        content: "\f059\00a0";
        color: #96a6d7;
    }

    .markdown-body .note:before {
        content: "\f040\00a0";
        color: #d7c896;
    }

    .markdown-body .admonition::after {
        content: normal;
    }

    .markdown-body .attention {
        border-left: 6px solid #a6d796;
    }

    .markdown-body .caution {
        border-left: 6px solid #d7a796;
    }

    .markdown-body .hint {
        border-left: 6px solid #96c6d7;
    }

    .markdown-body .danger {
        border-left: 6px solid #c25f77;
    }

    .markdown-body .question {
        border-left: 6px solid #96a6d7;
    }

    .markdown-body .note {
        border-left: 6px solid #d7c896;
    }

    .markdown-body .admonition > *:first-child {
        margin-top: 0 !important;
    }

    .markdown-body .admonition > *:last-child {
        margin-bottom: 0 !important;
    }

    /* progress bar*/
    .markdown-body .progress {
        display: block;
        width: 300px;
        margin: 10px 0;
        height: 24px;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        background-color: #ededed;
        position: relative;
        box-shadow: inset -1px 1px 3px rgba(0, 0, 0, .1);
    }

    .markdown-body .progress-label {
        position: absolute;
        text-align: center;
        font-weight: bold;
        width: 100%;
        margin: 0;
        line-height: 24px;
        color: #333;
        text-shadow: 1px 1px 0 #fefefe, -1px -1px 0 #fefefe, -1px 1px 0 #fefefe, 1px -1px 0 #fefefe, 0 1px 0 #fefefe, 0 -1px 0 #fefefe, 1px 0 0 #fefefe, -1px 0 0 #fefefe, 1px 1px 2px #000;
        -webkit-font-smoothing: antialiased !important;
        white-space: nowrap;
        overflow: hidden;
    }

    .markdown-body .progress-bar {
        height: 24px;
        float: left;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        background-color: #96c6d7;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(0, 0, 0, .1);
        background-size: 30px 30px;
        background-image: -webkit-linear-gradient(
                135deg, rgba(255, 255, 255, .4) 27%,
                transparent 27%,
                transparent 52%, rgba(255, 255, 255, .4) 52%,
                rgba(255, 255, 255, .4) 77%,
                transparent 77%, transparent
        );
        background-image: -moz-linear-gradient(
                135deg,
                rgba(255, 255, 255, .4) 27%, transparent 27%,
                transparent 52%, rgba(255, 255, 255, .4) 52%,
                rgba(255, 255, 255, .4) 77%, transparent 77%,
                transparent
        );
        background-image: -ms-linear-gradient(
                135deg,
                rgba(255, 255, 255, .4) 27%, transparent 27%,
                transparent 52%, rgba(255, 255, 255, .4) 52%,
                rgba(255, 255, 255, .4) 77%, transparent 77%,
                transparent
        );
        background-image: -o-linear-gradient(
                135deg,
                rgba(255, 255, 255, .4) 27%, transparent 27%,
                transparent 52%, rgba(255, 255, 255, .4) 52%,
                rgba(255, 255, 255, .4) 77%, transparent 77%,
                transparent
        );
        background-image: linear-gradient(
                135deg,
                rgba(255, 255, 255, .4) 27%, transparent 27%,
                transparent 52%, rgba(255, 255, 255, .4) 52%,
                rgba(255, 255, 255, .4) 77%, transparent 77%,
                transparent
        );
    }

    .markdown-body .progress-100plus .progress-bar {
        background-color: #a6d796;
    }

    .markdown-body .progress-80plus .progress-bar {
        background-color: #c6d796;
    }

    .markdown-body .progress-60plus .progress-bar {
        background-color: #d7c896;
    }

    .markdown-body .progress-40plus .progress-bar {
        background-color: #d7a796;
    }

    .markdown-body .progress-20plus .progress-bar {
        background-color: #d796a6;
    }

    .markdown-body .progress-0plus .progress-bar {
        background-color: #c25f77;
    }

    .markdown-body .candystripe-animate .progress-bar {
        -webkit-animation: animate-stripes 3s linear infinite;
        -moz-animation: animate-stripes 3s linear infinite;
        animation: animate-stripes 3s linear infinite;
    }

    @-webkit-keyframes animate-stripes {
        0% {
            background-position: 0 0;
        }

        100% {
            background-position: 60px 0;
        }
    }

    @-moz-keyframes animate-stripes {
        0% {
            background-position: 0 0;
        }

        100% {
            background-position: 60px 0;
        }
    }

    @keyframes animate-stripes {
        0% {
            background-position: 0 0;
        }

        100% {
            background-position: 60px 0;
        }
    }

    .markdown-body .gloss .progress-bar {
        box-shadow: inset 0 4px 12px rgba(255, 255, 255, .7),
        inset 0 -12px 0 rgba(0, 0, 0, .05);
    }

    /* Multimarkdown Critic Blocks */
    .markdown-body .critic_mark {
        background: #ff0;
    }

    .markdown-body .critic_delete {
        color: #c82829;
        text-decoration: line-through;
    }

    .markdown-body .critic_insert {
        color: #718c00;
        text-decoration: underline;
    }

    .markdown-body .critic_comment {
        color: #8e908c;
        font-style: italic;
    }

    .markdown-body .headeranchor {
        font: normal normal 16px fontawesome-mini;
        line-height: 1;
        display: inline-block;
        text-decoration: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
    }

    .headeranchor:before {
        content: '\e157';
    }

    .markdown-body .task-list-item {
        list-style-type: none;
    }

    .markdown-body .task-list-item + .task-list-item {
        margin-top: 3px;
    }

    .markdown-body .task-list-item input {
        margin: 0 4px 0.25em -20px;
        vertical-align: middle;
    }

    /* Media */
    @media only screen and (min-width: 480px) {
        .markdown-body {
            font-size: 14px;
        }
    }

    @media only screen and (min-width: 768px) {
        .markdown-body {
            font-size: 16px;
        }
    }

    @media print {
        .markdown-body * {
            background: transparent !important;
            color: black !important;
            filter: none !important;
            -ms-filter: none !important;
        }

        .markdown-body {
            font-size: 12pt;
            max-width: 100%;
            outline: none;
            border: 0;
        }

        .markdown-body a,
        .markdown-body a:visited {
            text-decoration: underline;
        }

        .markdown-body .headeranchor-link {
            display: none;
        }

        .markdown-body a[href]:after {
            content: " (" attr(href) ")";
        }

        .markdown-body abbr[title]:after {
            content: " (" attr(title) ")";
        }

        .markdown-body .ir a:after,
        .markdown-body a[href^="javascript:"]:after,
        .markdown-body a[href^="#"]:after {
            content: "";
        }

        .markdown-body pre {
            white-space: pre;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        .markdown-body pre,
        .markdown-body blockquote {
            border: 1px solid #999;
            padding-right: 1em;
            page-break-inside: avoid;
        }

        .markdown-body .progress,
        .markdown-body .progress-bar {
            -moz-box-shadow: none;
            -webkit-box-shadow: none;
            box-shadow: none;
        }

        .markdown-body .progress {
            border: 1px solid #ddd;
        }

        .markdown-body .progress-bar {
            height: 22px;
            border-right: 1px solid #ddd;
        }

        .markdown-body tr,
        .markdown-body img {
            page-break-inside: avoid;
        }

        .markdown-body img {
            max-width: 100% !important;
        }

        .markdown-body p,
        .markdown-body h2,
        .markdown-body h3 {
            orphans: 3;
            widows: 3;
        }

        .markdown-body h2,
        .markdown-body h3 {
            page-break-after: avoid;
        }
    }
    </style>
    <style>/*github*/
    .codehilite {
        background-color: #fff;
        color: #333333;
    }

    .codehilite .hll {
        background-color: #ffffcc;
    }

    .codehilite .c {
        color: #999988;
        font-style: italic
    }

    .codehilite .err {
        color: #a61717;
        background-color: #e3d2d2
    }

    .codehilite .k {
        font-weight: bold
    }

    .codehilite .o {
        font-weight: bold
    }

    .codehilite .cm {
        color: #999988;
        font-style: italic
    }

    .codehilite .cp {
        color: #999999;
        font-weight: bold
    }

    .codehilite .c1 {
        color: #999988;
        font-style: italic
    }

    .codehilite .cs {
        color: #999999;
        font-weight: bold;
        font-style: italic
    }

    .codehilite .gd {
        color: #000000;
        background-color: #ffdddd
    }

    .codehilite .ge {
        font-style: italic
    }

    .codehilite .gr {
        color: #aa0000
    }

    .codehilite .gh {
        color: #999999
    }

    .codehilite .gi {
        color: #000000;
        background-color: #ddffdd
    }

    .codehilite .go {
        color: #888888
    }

    .codehilite .gp {
        color: #555555
    }

    .codehilite .gs {
        font-weight: bold
    }

    .codehilite .gu {
        color: #800080;
        font-weight: bold
    }

    .codehilite .gt {
        color: #aa0000
    }

    .codehilite .kc {
        font-weight: bold
    }

    .codehilite .kd {
        font-weight: bold
    }

    .codehilite .kn {
        font-weight: bold
    }

    .codehilite .kp {
        font-weight: bold
    }

    .codehilite .kr {
        font-weight: bold
    }

    .codehilite .kt {
        color: #445588;
        font-weight: bold
    }

    .codehilite .m {
        color: #009999
    }

    .codehilite .s {
        color: #dd1144
    }

    .codehilite .n {
        color: #333333
    }

    .codehilite .na {
        color: teal
    }

    .codehilite .nb {
        color: #0086b3
    }

    .codehilite .nc {
        color: #445588;
        font-weight: bold
    }

    .codehilite .no {
        color: teal
    }

    .codehilite .ni {
        color: purple
    }

    .codehilite .ne {
        color: #990000;
        font-weight: bold
    }

    .codehilite .nf {
        color: #990000;
        font-weight: bold
    }

    .codehilite .nn {
        color: #555555
    }

    .codehilite .nt {
        color: navy
    }

    .codehilite .nv {
        color: teal
    }

    .codehilite .ow {
        font-weight: bold
    }

    .codehilite .w {
        color: #bbbbbb
    }

    .codehilite .mf {
        color: #009999
    }

    .codehilite .mh {
        color: #009999
    }

    .codehilite .mi {
        color: #009999
    }

    .codehilite .mo {
        color: #009999
    }

    .codehilite .sb {
        color: #dd1144
    }

    .codehilite .sc {
        color: #dd1144
    }

    .codehilite .sd {
        color: #dd1144
    }

    .codehilite .s2 {
        color: #dd1144
    }

    .codehilite .se {
        color: #dd1144
    }

    .codehilite .sh {
        color: #dd1144
    }

    .codehilite .si {
        color: #dd1144
    }

    .codehilite .sx {
        color: #dd1144
    }

    .codehilite .sr {
        color: #009926
    }

    .codehilite .s1 {
        color: #dd1144
    }

    .codehilite .ss {
        color: #990073
    }

    .codehilite .bp {
        color: #999999
    }

    .codehilite .vc {
        color: teal
    }

    .codehilite .vg {
        color: teal
    }

    .codehilite .vi {
        color: teal
    }

    .codehilite .il {
        color: #009999
    }

    .codehilite .gc {
        color: #999;
        background-color: #EAF2F5
    }
    </style>
    <title>README</title></head>
<body>
<article class="markdown-body"><h1 id="cmdbapi">CMDB区服列表API接口规范<a class="headerlink" href="#cmdbapi"
                                                                  title="Permanent link"></a></h1>
    <div class="toc">
        <ul>
            <li><a href="#cmdbapi">CMDB区服列表API接口规范</a>
                <ul>
                    <li><a href="#api">运维管理机状态api</a>
                        <ul>
                            <li><a href="#_1">状态说明</a></li>
                            <li><a href="#_2">修改例子</a></li>
                            <li><a href="#_3">返回码</a></li>
                        </ul>
                    </li>
                    <li><a href="#_4">说明</a></li>
                    <li><a href="#_5">区服表字段说明</a>
                        <ul>
                            <li><a href="#_6">说明</a></li>
                        </ul>
                    </li>
                    <li><a href="#11">1.1增加区服列表(增开新服后调用此接口)</a>
                        <ul>
                            <li><a href="#_7">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#12">1.2 更新服务器参数配置（前端更新）接口（页游）</a>
                        <ul>
                            <li><a href="#_8">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#13">1.3 更新服务器参数配置（后端更新）接口（页游）</a>
                        <ul>
                            <li><a href="#131-get">1.3.1 GET请求</a></li>
                            <li><a href="#132-post">1.3.2 POST请求</a>
                                <ul>
                                    <li><a href="#_9">返回码对照表</a></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li><a href="#14">1.4 删除某个服的数据接口</a>
                        <ul>
                            <li><a href="#_10">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#15">1.5 修改服务器相关信息接口</a>
                        <ul>
                            <li><a href="#_11">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#16-cdn">1.6 根据条件批量修改cdn地址接口</a>
                        <ul>
                            <li><a href="#_12">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#17">1.7合服完成回调接口</a>
                        <ul>
                            <li><a href="#_13">返回码对照表</a></li>
                        </ul>
                    </li>
                    <li><a href="#18">1.8 查询区服列表接口</a>
                        <ul>
                            <li><a href="#_14">返回结果</a></li>
                        </ul>
                    </li>
                    <li><a href="#19">1.9 批量修改区服状态接口</a>
                        <ul>
                            <li><a href="#_15">返回结果</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
    <h2 id="api">运维管理机状态api<a class="headerlink" href="#api" title="Permanent link"></a></h2>
    <h3 id="_1">状态说明<a class="headerlink" href="#_1" title="Permanent link"></a></h3>
    <ul>
        <li>&lsquo;0&rsquo; 空闲</li>
        <li>&lsquo;1&rsquo; 装服 <strong>运维管理机</strong>可以修改</li>
        <li>&lsquo;2&rsquo; CMDB热更新 <strong>CMDB</strong>可以修改</li>
        <li>&lsquo;3&rsquo; 运维管理机热更新 <strong>运维管理机</strong>可以修改</li>
        <li>&lsquo;4&rsquo; 合服 <strong>运维管理机</strong>可以修改</li>
        <li>&lsquo;5&rsquo; 迁移 <strong>运维管理机</strong>可以修改</li>
        <li>&lsquo;6&rsquo; 版本更新 <strong>运维管理机</strong>可以修改</li>
        <li>&lsquo;7&rsquo; 关平台 <strong>运维管理机</strong>可以修改</li>
    </ul>
    <p>根据<strong>项目</strong>和<strong>地区</strong>来修改一个或者多个运维管理机的状态</p>
    <p><strong>end_time</strong>可以传，如果传表示该操作的预估结束时间，如果不传，表示时间未知.</p>
    <h3 id="_2">修改例子<a class="headerlink" href="#_2" title="Permanent link"></a></h3>
    <p>装服的过程中加锁:
        <code>curl -H 'Authorization: Token your_token' -k "https://192.168.100.66/api/lockOpsManager?project=snqxsz&amp;area=大陆&amp;status=1&amp;end_time=1502940820"</code>
    </p>
    <p>返回结果:
        <code>{"resp": 1, "reason": "ok"}</code></p>
    <p>装服完成以后修改解锁:
        <code>curl -H 'Authorization: Token your_token' -k "https://192.168.100.66/api/unlockOpsManager?project=snqxz&amp;area=大陆&amp;status=1"</code>
    </p>
    <p>返回结果:
        <code>{"resp": 1, "reason": "ok"}</code></p>
    <h3 id="_3">返回码<a class="headerlink" href="#_3" title="Permanent link"></a></h3>
    <ul>
        <li>1 ok</li>
        <li>12 游戏项目英文名不存在</li>
        <li>11 内部未知错误</li>
        <li>20 没有匹配到运维管理机</li>
        <li>21 status状态错误</li>
    </ul>
    <h2 id="_4">说明<a class="headerlink" href="#_4" title="Permanent link"></a></h2>
    <p>各个项目上需要将各自的区服列表汇总到CMDB中，用于以后的更新和相关的操作。接口全部采用http GET请求，返回码和返回结果查看每个api的相应的返回对照表</p>
    <h2 id="_5">区服表字段说明<a class="headerlink" href="#_5" title="Permanent link"></a></h2>
    <ul>
        <li>
            <p><strong>project_type</strong> 游戏项目类型 整型字段</p>
            <blockquote>
                <p>0手游 1页游</p>
            </blockquote>
        </li>
        <li>
            <p><strong>project</strong> 游戏项目，关联到cmdb的项目</p>
        </li>
        <li>
            <p><strong>srv_status</strong> 游戏服状态</p>
            <blockquote>
                <p>0 正常 4 关闭平台 <strong>默认是0</strong></p>
            </blockquote>
        </li>
        <li>
            <p><strong>room</strong> 机房，关联到cmdb的机房</p>
        </li>
        <li>
            <p><strong>host</strong> 主机，关联到cmdb的主机</p>
        </li>
        <li>
            <p><strong>game_type</strong> 游戏类型 关联到区服类型表</p>
        </li>
        <li>
            <p><strong>pf_name</strong> 平台名 字符串类型 比如<em>37， qq</em></p>
        </li>
        <li>
            <p><strong>srv_id</strong> 区服id 字符串类型 比如<em>liebao_10003</em></p>
        </li>
        <li>
            <p><strong>srv_name</strong> 区服名 字符串类型 比如<em>双线一服</em></p>
        </li>
        <li>
            <p><strong>ip</strong> 外网ip地址 字符串类型 比如<em>58.63.33.154</em></p>
        </li>
        <li>
            <p><strong>merge_id</strong> 合服id 关联到自身表的srv_id字段 <strong>如果没有合服，为None, 默认是None</strong></p>
        </li>
        <li>
            <p><strong>merge_time</strong> 合服时间 datetime类型 同上面的一样，<strong>如果没有合服，为None, 默认是None</strong></p>
        </li>
        <li>
            <p><strong>client_version</strong> 前端版本号 字符串类型</p>
        </li>
        <li>
            <p><strong>server_version</strong> 后端版本号 字符串类型</p>
        </li>
        <li>
            <p><strong>cdn_root_url</strong> CDN根路径 字符串类型</p>
        </li>
        <li>
            <p><strong>cdn_dir CDN</strong>目录 字符串类型</p>
        </li>
        <li>
            <p><strong>open_time</strong> 开服时间，时间戳，字符串类型</p>
        </li>
        <li>
            <p><strong>area_name</strong> 游戏区域, 字符串类型</p>
        </li>
        <li>
            <p><strong>sid</strong> web区服id, 整形类型</p>
        </li>
    </ul>
    <h3 id="_6">说明<a class="headerlink" href="#_6" title="Permanent link"></a></h3>
    <p><strong>project</strong>, <strong>srv_id</strong>, <strong>area_name</strong>这三个字段联合唯一</p>
    <h2 id="11">1.1增加区服列表(增开新服后调用此接口)<a class="headerlink" href="#11" title="Permanent link"></a></h2>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/newSrvCallBack">https://cmdb.cy666.com/api/newSrvCallBack</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>请求参数</em></p>
    <table>
        <thead>
        <tr>
            <th>参数名</th>
            <th>是否必须</th>
            <th>类型</th>
            <th>例子</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>project_type</td>
            <td>是</td>
            <td>int</td>
            <td>1</td>
        </tr>
        <tr>
            <td>game</td>
            <td>是</td>
            <td>string</td>
            <td>snqxz(项目英文名)</td>
        </tr>
        <tr>
            <td>srv_status</td>
            <td>否</td>
            <td>int</td>
            <td>0(正常) 4(关闭平台)</td>
        </tr>
        <tr>
            <td>room</td>
            <td>是</td>
            <td>string</td>
            <td>qq云(机房名称)</td>
        </tr>
        <tr>
            <td>host</td>
            <td>是</td>
            <td>string</td>
            <td>snqxz_boke_10.1.1.1</td>
        </tr>
        <tr>
            <td>game_type</td>
            <td>是</td>
            <td>int</td>
            <td>1</td>
        </tr>
        <tr>
            <td>pf_name</td>
            <td>是</td>
            <td>string</td>
            <td>37</td>
        </tr>
        <tr>
            <td>srv_id</td>
            <td>是</td>
            <td>string</td>
            <td>37_012</td>
        </tr>
        <tr>
            <td>srv_name</td>
            <td>是</td>
            <td>string</td>
            <td>双线1服</td>
        </tr>
        <tr>
            <td>ip</td>
            <td>是</td>
            <td>string</td>
            <td>192.168.1.1</td>
        </tr>
        <tr>
            <td>client_version</td>
            <td>是</td>
            <td>string</td>
            <td>0001311</td>
        </tr>
        <tr>
            <td>server_version</td>
            <td>是</td>
            <td>string</td>
            <td>1937133</td>
        </tr>
        <tr>
            <td>cdn_root_url</td>
            <td>是</td>
            <td>string</td>
            <td>res.qxz.zhi-ming.com</td>
        </tr>
        <tr>
            <td>cdn_dir</td>
            <td>是</td>
            <td>string</td>
            <td>qq_s1</td>
        </tr>
        <tr>
            <td>merge_id</td>
            <td>否</td>
            <td>string</td>
            <td>37_010</td>
        </tr>
        <tr>
            <td>merge_time</td>
            <td>否</td>
            <td>string</td>
            <td>时间戳(1381419600)</td>
        </tr>
        <tr>
            <td>open_time</td>
            <td>是</td>
            <td>string</td>
            <td>时间戳(1381419600)</td>
        </tr>
        <tr>
            <td>area_name</td>
            <td>是</td>
            <td>string</td>
            <td>大陆</td>
        </tr>
        <tr>
            <td>sid</td>
            <td>是</td>
            <td>int</td>
            <td>391001</td>
        </tr>
        </tbody>
    </table>
    <p><em>示例</em>
        新增一个游戏服，没有合服
    <div class="codehilite"><pre>curl -H &#39;Authorization: Token YOU_TOKEN&#39; -k &quot;https://cmdb.cy666.com/api/newSrvCallBack?project_type=1&amp;game=snqxz&amp;game_type=1&amp;pf_name=37&amp;srv_id=37_012&amp;srv_name=双线1服&amp;ip=192.168.1.1&amp;client_version=0001311&amp;server_version=1937133&amp;cdn_root_url=res.qxz.zhi-ming.com&amp;cdn_dir=qq_s1&amp;room=qq机房&amp;host=snqxz_boke_10.1.1.1&amp;open_time=1381419600&amp;area_name=大陆&sid=391001&quot;
</pre>
    </div>
    </p>
    <p>返回结果:
        <code>{"resp": 1, "reason": "ok", "count": 1}</code></p>
    <p>新增一个游戏服，带合服id和合服时间<strong>通常用于第一次添加过来使用</strong>
    <div class="codehilite"><pre>curl -H &#39;Authorization: Token YOU_TOKEN&#39; -k &quot;https://cmdb.cy666.com/api/newSrvCallBack?project_type=1&amp;game=snqxz&amp;game_type=1&amp;pf_name=37&amp;srv_id=37_013&amp;srv_name=双线1服&amp;ip=192.168.1.2&amp;client_version=0001311&amp;server_version=1937133&amp;cdn_root_url=res.qxz.zhi-ming.com&amp;cdn_dir=qq_s1&amp;merge_id=37_012&amp;merge_time=1381419600&amp;room=qq机房&amp;host=snqxz_boke_10.1.1.1&amp;open_time=1381419600&amp;area_name=大陆&sid=391001&quot;
</pre>
    </div>
    </p>
    <p>返回结果:
        <code>{"resp": 1, "reason": "ok", "count": 1}</code></p>
    <h5 id="_7">返回码对照表<a class="headerlink" href="#_7" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>14</td>
            <td>主服id不存在</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>13</td>
            <td>区服id记录有重复</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        <tr>
            <td>15</td>
            <td>机房名不存在</td>
        </tr>
        <tr>
            <td>16</td>
            <td>游戏服不唯一</td>
        </tr>
        </tbody>
    </table>
    <h2 id="12">1.2 更新服务器参数配置（前端更新）接口（页游）<a class="headerlink" href="#12" title="Permanent link"></a></h2>
    <p>根据游戏和cdn_root_url和cdn_dir来更新前端版本号</p>
    <p><em>查询参数</em>
        - game
        - cdn_root_url
        - cdn_dir
        - area_name</p>
    <p><em>更新参数</em>
        -client_ver</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/updateClientPara">https://cmdb.cy666.com/api/updateClientPara</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>请求参数</em></p>
    <table>
        <thead>
        <tr>
            <th>参数名</th>
            <th>是否必须</th>
            <th>类型</th>
            <th>例子</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>game</td>
            <td>是</td>
            <td>string</td>
            <td>jyjh(项目英文名)</td>
        </tr>
        <tr>
            <td>area_name</td>
            <td>是</td>
            <td>string</td>
            <td>大陆</td>
        </tr>
        <tr>
            <td>cdn_root_url</td>
            <td>是</td>
            <td>string</td>
            <td>cdn8.jyjh.yaowan.com</td>
        </tr>
        <tr>
            <td>cdn_dir</td>
            <td>是</td>
            <td>string</td>
            <td>qq_r1</td>
        </tr>
        <tr>
            <td>client_ver</td>
            <td>是</td>
            <td>string</td>
            <td>new_client_version</td>
        </tr>
        </tbody>
    </table>
    <p><em>示例</em>
        <code>curl -H 'Authorization: Token your_token' -k "https://cmdb.cy666.com/api/updateClientPara?game=jyjh&amp;client_ver=a_new_version34&amp;cdn_root_url=cdn8.jyjh.yaowan.com&amp;cdn_dir=qq_s1&amp;area_name=大陆"</code>
    </p>
    <p>返回结果
        <code>{"resp": 1, "reason": "", "count": 51}</code></p>
    <h5 id="_8">返回码对照表<a class="headerlink" href="#_8" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>8</td>
            <td>游戏服找不到</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        </tbody>
    </table>
    <h2 id="13">1.3 更新服务器参数配置（后端更新）接口（页游）<a class="headerlink" href="#13" title="Permanent link"></a></h2>
    <h3 id="131-get">1.3.1 GET请求<a class="headerlink" href="#131-get" title="Permanent link"></a></h3>
    <p><em>查询参数</em>
        - game
        - area_name
        - pf_select_type
        - pf_list
        - srv_select_type
        - srv_list
        - old_version_no</p>
    <p><em>更新参数</em>
        -server_ver</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/updateSrvPara">https://cmdb.cy666.com/api/updateSrvPara</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>示例</em>
        1 更新剑雨江湖所有平台的后端版本
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/updateSrvPara?game=jyjh&amp;pf_select_type=all&amp;server_ver=001server&amp;area_name=大陆"</code>
    </p>
    <p>2 更新剑雨江湖lmqq平台的后端版本
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/updateSrvPara?game=jyjh&amp;pf_select_type=include&amp;pf_list=lmqq&amp;server_ver=002server&amp;area_name=大陆"</code>
    </p>
    <h3 id="132-post">1.3.2 POST请求<a class="headerlink" href="#132-post" title="Permanent link"></a></h3>
    <p><em>查询参数</em>
        - game
        - area_name
        - srv_list</p>
    <p><em>更新参数</em>
        -server_ver</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/updateSrvPara">https://cmdb.cy666.com/api/updateSrvPara</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>POST</li>
    </ul>
    <p><em>示例</em>
        <strong>更新剑雨江湖台湾地区区服id为gm99_1,gm99_2,gm99_6这三个服的后端版本为2333</strong>
        <code>curl -X POST -k http://cmdb.cy666.com/api/updateSrvPara -H 'Authorization: Token your_token' -H
            'Content-Type: application/json' -d '{"game": "jyjh", "server_ver": "2333", "area_name": "台湾", "srv_list":
            "gm99_1,gm99_2,gm99_6"}'</code></p>
    <p>返回结果
        <code>{"reason": "ok", "count": 3, "resp": 1}</code></p>
    <h5 id="_9">返回码对照表<a class="headerlink" href="#_9" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        </tbody>
    </table>
    <h2 id="14">1.4 删除某个服的数据接口<a class="headerlink" href="#14" title="Permanent link"></a></h2>
    <p><em>查询参数</em>
        - game
        - srv_id
        - area_name</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/delSrvRelateInfo">https://cmdb.cy666.com/api/delSrvRelateInfo</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>示例</em>
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/delSrvRelateInfo?game=jyjh&amp;srv_id=ywqq_113&amp;area_name=大陆"</code>
    </p>
    <h5 id="_10">返回码对照表<a class="headerlink" href="#_10" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>14</td>
            <td>游戏服没有找到</td>
        </tr>
        <tr>
            <td>16</td>
            <td>游戏服不唯一</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        </tbody>
    </table>
    <h2 id="15">1.5 修改服务器相关信息接口<a class="headerlink" href="#15" title="Permanent link"></a></h2>
    <p>修改单个服</p>
    <p><em>查询参数</em>
        - game
        - srv_id
        - area_name</p>
    <p><em>更新参数</em>
        - srv_status 可选
        - ip 可选
        - cdn_root_url 绑定#1
        - cdn_dir 绑定#1
        - client_version 绑定#1
        - room 可选 机房名称
        - game_type 可选 区服类型代号
        - host 可选 主机唯一标识符
        - pf_name 可选
        - srv_name 可选
        - server_version 可选
        - merge_id 可选
        - merge_time 时间戳，可选
        - open_time 时间戳，可选
        - sid web区服id，可选</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/modifySrvRelateInfo">https://cmdb.cy666.com/api/modifySrvRelateInfo</a>
        </li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>关闭平台后调用接口修改区服状态为关闭平台</em>
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/modifySrvRelateInfo?game=jyjh&amp;pf_name=ywqq&amp;srv_id=ywqq_113&amp;area_name=大陆&amp;srv_status=4</code>
    </p>
    <p><em>示例</em>
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/modifySrvRelateInfo?game=jyjh&amp;pf_name=ywqq&amp;srv_id=ywqq_113&amp;area_name=大陆&amp;ip=192.168.1.1</code>
    </p>
    <p><code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/modifySrvRelateInfo?game=jyjh&amp;pf_name=lmqq&amp;srv_id=lmqq_109&amp;area_name=大陆&amp;ip=192.168.1.1&amp;cdn_root_url=cdn.jyjh.yaowan.com&amp;cdn_dir=qq_r2&amp;client_version=0001client</code>
    </p>
    <p><strong>说明</strong>
        如果要修改某个区服的合服id为空,也就是把该服有被合服改为未合服的情况，只需要传递<strong>merge_id</strong>为<strong>数字0</strong>即可，merge_time不需要传递，会自动设置为None值.
    </p>
    <p>例如:
        剑雨江湖越南地区vng_150服原来的合服id是vng_140，现在要把vng_150设置为没有合服，也就是主服的情况,只需要设置merge_id为0即可
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/modifySrvRelateInfo?game=jyjh&amp;srv_id=vng_150&amp;area_name=越南&amp;merge_id=0"</code>
    </p>
    <h5 id="_11">返回码对照表<a class="headerlink" href="#_11" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>14</td>
            <td>游戏服没有找到</td>
        </tr>
        <tr>
            <td>16</td>
            <td>游戏服不唯一</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        <tr>
            <td>20</td>
            <td>区服类型没有找到</td>
        </tr>
        </tbody>
    </table>
    <h2 id="16-cdn">1.6 根据条件批量修改cdn地址接口<a class="headerlink" href="#16-cdn" title="Permanent link"></a></h2>
    <p><em>查询参数</em>
        - game
        - area_name
        - old_cdn_root_url 绑定#1
        - old_cdn_dir 绑定#1
        - srv_list</p>
    <p><em>更新参数</em>
        - new_cdn_root_url
        - new_cdn_dir
        - client_version</p>
    <p><strong>说明</strong>
        old_cdn_root_url, old_cdn_dir和srv_list为互斥的关系，每次请求过来只能传一个，如果都传，则会以<strong>old_cdn_root_url,old_cdn_dir</strong>作为过滤的条件，srv_list的参数将会忽略
    </p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/batchModifyCdn">https://cmdb.cy666.com/api/batchModifyCdn</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>示例</em>
        根据old_cdn_root_url和old_cdn_dir过滤
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/batchModifyCdn?game=jyjh&amp;area_name=大陆&amp;old_cdn_root_url=cdn6.jyjh.yaowan.com&amp;old_cdn_dir=qq_r1&amp;new_cdn_root_url=cdn7.jyjh.yaowan.com&amp;new_cdn_dir=qq_r1&amp;client_version=new_client_version"</code>
    </p>
    <p>根据srv_list过滤
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/batchModifyCdn?game=jyjh&amp;area_name=大陆&amp;srv_list=qq_1,qq_2&amp;new_cdn_root_url=cdn7.jyjh.yaowan.com&amp;new_cdn_dir=qq_r1&amp;client_version=new_client_version"</code>
    </p>
    <h5 id="_12">返回码对照表<a class="headerlink" href="#_12" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>19</td>
            <td>解析cdn出错</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        </tbody>
    </table>
    <h2 id="17">1.7合服完成回调接口<a class="headerlink" href="#17" title="Permanent link"></a></h2>
    <p><em>查询参数</em>
        - game
        - srv_id
        - merge_id
        - merge_time
        - area_name</p>
    <p>将查询得到的唯一srv_id指向主服merge_id查询得到的唯一主服</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/mergeSrvCallBack">https://cmdb.cy666.com/api/mergeSrvCallBack</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>示例</em>
        <code>curl -H 'Authorization: Token your_token' -k "http://cmdb.cy666.com/api/mergeSrvCallBack?game=jyjh&amp;merge_id=ywqq_1&amp;merge_time=1502790997&amp;srv_id=ywqq_145&amp;area_name=大陆</code>
    </p>
    <h5 id="_13">返回码对照表<a class="headerlink" href="#_13" title="Permanent link"></a></h5>
    <table>
        <thead>
        <tr>
            <th>resp</th>
            <th>reason</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>操作成功</td>
        </tr>
        <tr>
            <td>4</td>
            <td>参数传递错误</td>
        </tr>
        <tr>
            <td>12</td>
            <td>游戏项目英文名不存在</td>
        </tr>
        <tr>
            <td>14</td>
            <td>游戏服没有找到</td>
        </tr>
        <tr>
            <td>16</td>
            <td>游戏服不唯一</td>
        </tr>
        <tr>
            <td>11</td>
            <td>API内部错误</td>
        </tr>
        </tbody>
    </table>
    <h2 id="18">1.8 查询区服列表接口<a class="headerlink" href="#18" title="Permanent link"></a></h2>
    <p>该接口通过查找，返回区服列表的srv_id 列表</p>
    <p><strong>CMDB只会返回状态是正常，并且没有合服的区服</strong></p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/gameservers">https://cmdb.cy666.com/api/gameservers</a></li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>GET</li>
    </ul>
    <p><em>示例</em></p>
    <p>查找剑雨江湖大陆YY的所有区服
        <code>curl -H 'Authorization: Token your_token' -k "https://cmdb.cy666.com/api/gameservers?project=jyjh&amp;area_name=大陆YY"</code>
    </p>
    <h5 id="_14">返回结果<a class="headerlink" href="#_14" title="Permanent link"></a></h5>
    <div class="codehilite"><pre>{&quot;resp&quot;: 1, &quot;reason&quot;: [&quot;2144_1&quot;, &quot;2144_228&quot;, &quot;2144_629&quot;, &quot;2144_814&quot;, &quot;2144_818&quot;, &quot;2144_819&quot;, &quot;2217_1&quot;, &quot;2217_236&quot;, &quot;2217_361&quot;, &quot;2345_1&quot;, &quot;2345_135&quot;, &quot;2345_282&quot;, &quot;2345_327&quot;, &quot;2345_419&quot;, &quot;2345_437&quot;, &quot;2345_441&quot;, &quot;2345_444&quot;, &quot;2345_448&quot;, &quot;2345_449&quot;, &quot;2345_450&quot;, ..... ], &quot;count&quot;: 654
</pre>
    </div>
    <h2 id="19">1.9 批量修改区服状态接口<a class="headerlink" href="#19" title="Permanent link"></a></h2>
    <p>该接口通过查找特定项目，特定地区，传入的区服id，对状态进行批量更新</p>
    <p><em>接口地址</em></p>
    <ul>
        <li><a href="https://cmdb.cy666.com/api/BatchModifyGameServerStatus">https://cmdb.cy666.com/api/BatchModifyGameServerStatus</a>
        </li>
    </ul>
    <p><em>HTTP请求方式</em></p>
    <ul>
        <li>POST</li>
    </ul>
    <p><em>请求参数</em>
    <div class="codehilite">
        <pre>
    {
    'area_name': '越南',                                                 # 地区
    'project': 'jyjh',                                                  # 游戏项目英文名
    'status_dict': {'cross_allpf_1': 1, 'cross_alltestpf_1': 5},        # 区服：状态字典
    }
</pre>
    </div>
    </p>
    <h5>区服状态码对照表</h5>
    <table>
        <thead>
        <tr>
            <th>状态码</th>
            <th>注释</th>
        </tr>
        </thead>
        <tbody>
        <tbody>
        <tr>
            <td>0</td>
            <td>正常（空闲）</td>
        </tr>
        <tr>
            <td>1</td>
            <td>注销</td>
        </tr>
        <tr>
            <td>4</td>
            <td>关闭平台</td>
        </tr>
        <tr>
            <td>5</td>
            <td>正在合服</td>
        </tr>
        <tr>
            <td>6</td>
            <td>正在重启</td>
        </tr>
        <tr>
            <td>7</td>
            <td>正在清档</td>
        </tr>
        <tr>
            <td>8</td>
            <td>正在开服</td>
        </tr>
        <tr>
            <td>9</td>
            <td>正在关服</td>
        </tr>
        </tbody>
    </table>
    <p><em>示例</em></p>
    <div class="codehilite">
        <pre>
# -*- encoding: utf-8 -*-

import requests
import json

url = 'https://cmdb.cy666.com/api/BatchModifyGameServerStatus/'
token = '123sa124hdegdg215215dsf2g3gh3h'
headers = {'Accept': 'application/json','Authorization': 'Token ' + token}
postdata = {'area_name': '越南',
        'project': 'jyjh',
        'status_dict': {'cross_allpf_1': 1, 'cross_alltestpf_1': 5},
        }
res = requests.post(url, json=postdata, headers=headers, timeout=60, verify=False)
if res.status_code == 200:
    r = res.json()
    print(r)
else:
    print(res)
</pre>
    </div>
    <h5 id="_15">返回结果<a class="headerlink" href="#_15" title="Permanent link"></a></h5>
    <div class="codehilite">
        <pre>{"count": 2, "resp": 1, "reason": "ok"}</pre>
        <p>count：表示修改成功区服个数</p>
        <h5>返回码对照表</h5>
        <table>
            <thead>
            <tr>
                <th>resp</th>
                <th>reason</th>
            </tr>
            </thead>
            <tbody>
            <tbody>
            <tr>
                <td>1</td>
                <td>修改成功</td>
            </tr>
            <tr>
                <td>12</td>
                <td>游戏项目英文名不存在</td>
            </tr>
            <tr>
                <td>14</td>
                <td>游戏服不存在</td>
            </tr>
            <tr>
                <td>4</td>
                <td>缺少参数</td>
            </tr>
            <tr>
                <td>11</td>
                <td>API内部错误</td>
            </tr>
            </tbody>
        </table>
    </div>
</article>
</body>
</html>



